package com.nextel.project.usuario.mvc;

import com.nextel.project.usuario.ControlUsuario;
import com.nextel.ui.OLabel;
import com.nextel.ui.OSoftKey;
import com.nextel.ui.OTextField;
import com.nextel.ui.OUILook;
import pe.com.nextel.main.MVCAction;
import pe.com.nextel.idioma.IdiomaManager;
import com.motorola.iden.security.MessageDigest;
import com.motorola.iden.security.NoSuchAlgorithmException;
import com.nextel.project.Configuracion;

public class MVCUsuario extends MVCAction {
 
    private OSoftKey cmdOk,cmdExit,cmdMant, cmdayuda;

    private OTextField  txtClave,txtLogin, txtEmpresa;

 
    protected void createView() {

    /*************cARGANDO cONFIGURACION*******/
        Configuracion.BOTON_SEGUIR = IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_SEGUIR);//"Seguir"
    Configuracion.BOTON_ATRAS = IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_ATRAS);//"Atr\u00E1s"
    Configuracion.BOTON_SALIR = IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_SALIR);//"Salir"
    /*************cARGANDO cONFIGURACION*******/

        cmdOk = new OSoftKey(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_LOGIN));
        //cmdExit = new OSoftKey(Configuracion.BOTON_SALIR );
        cmdExit = new OSoftKey(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_SALIR));
        //cmdMant = new OSoftKey("Mantenimiento");
        cmdMant = new OSoftKey(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_MANTENIMIENTO));
        //cmdayuda = new OSoftKey("Ayuda");
        
        //formulario.setTitle("Ingreso", OUILook.PLAIN_SMALL_TITLE);
        formulario.setTitle(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESO).toUpperCase(), OUILook.PLAIN_SMALL_TITLE);
         formulario.addSoftKey(cmdOk);
        formulario.addSoftKey(cmdExit);
        formulario.addSoftKey(cmdMant);
        //formulario.addSoftKey(cmdayuda);
    }

    protected void createItems() {

        formulario.add(new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_USUARIO) +":", OUILook.PLAIN_SMALL_TEXT));
        //formulario.add(new OLabel("Usuario: ", OUILook.PLAIN_SMALL_TEXT));
        txtLogin = new OTextField(15, OUILook.PLAIN_SMALL_TEXT,  OTextField.ANY);               
        formulario.add(txtLogin );
        
        //formulario.add(new OLabel("Clave:", OUILook.PLAIN_SMALL_TEXT));
        formulario.add(new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CLAVE)+ ":", OUILook.PLAIN_SMALL_TEXT));
        txtClave = new OTextField(25,OUILook.PLAIN_SMALL_TEXT,OTextField.NUMERIC|OTextField.PASSWORD);
        formulario.add(txtClave);        
 
    }

    public void performAction(OSoftKey c) {
        String usuario  = txtLogin.getText().toUpperCase().trim();
        String password = txtClave.getText().toUpperCase().trim();
        String empresa  = "99";//txtEmpresa.getText().toUpperCase().trim(); //aMendiola 03/11/2010

        
        if (c == cmdExit) {
            ControlUsuario.getInstance().exitBussiness();
        } else if (c == cmdOk) {            

           
           System.out.println("PASSWORD= "+password.toString());           
           System.out.println("SHA!= " + convertirSHA1(password));


           if (usuario.equals("") || password.equals("") || empresa.equals("") ) {

                //ControlUsuario.getInstance().showError("Porfavor Ingrese todos los Campos", formulario);
                ControlUsuario.getInstance().showError(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESE_CAMPOS), formulario);
                return;
            }
            
            destroy();
 

            ControlUsuario.getInstance().validarUsuario(usuario, convertirSHA1(password), empresa);

        } else if (c == cmdMant) {
            if (usuario.equals("") || password.equals("")) {
          
                //ControlUsuario.getInstance().showError("Ingrese los datos", formulario);
                ControlUsuario.getInstance().showError(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESE_DATOS), formulario);
                return;
            }
            destroy();
            ControlUsuario.getInstance().validarMantenimiento(usuario, password);
        }
//        else if (c == cmdayuda){
//            destroy();
//            ControlUsuario.getInstance().setCurrent(ControlUsuario.getInstance().mvcAyuda.showScreen());
//
//        }

    }

    public String convertirSHA1(String data) {
    try {
     //StringBuffer buffer = new StringBuffer();
     String datHex="";
     MessageDigest md = MessageDigest.getInstance("SHA");
     //String data = "apple";
     byte [] arreglo_data = data.getBytes();

     md.update(arreglo_data, 0, arreglo_data.length);
     byte[] digest = md.digest();
        for (int i=0; i<digest.length; i++) {
          String hex = Integer.toHexString(digest[i]);
          if (hex.length() == 1) hex = "0" + hex;
          hex=hex.substring(hex.length()-2);         
          datHex= datHex + hex;

        }        
        return datHex.toString();
        //return buffer.toString();

        } catch(NoSuchAlgorithmException ex) {
            return null;
        }

    }
 

}
